1. Field of the Invention
The present invention relates to virtualization of data storage library addresses.
2. Description of the Related Art
Many data processing systems require a large amount of data storage, for use in efficiently accessing, modifying, and re-storing data. One type of data storage includes removable media storage libraries, such as tape libraries, electronic media libraries, and optical disk libraries. Access to library data may be slow because a robot or human is necessary to select and load the needed data storage medium. An advantage of these storage systems is the reduced cost for very large data storage capabilities, on the order of terabytes of data. Furthermore, removable media storage is especially useful for backup purposes. That is, data stored at the higher levels of data storage hierarchy is reproduced for safe keeping on removable media. Access to data stored in a library is presently on the order of seconds.
There are a number of different data storage libraries on the market today, including models made by International Business Machines (“IBM”). A number of data storage libraries today utilize the small computer system interface (“SCSI”) medium changer standard. This standard is “location-centric” because it requires an application program at a host to manage data storage cartridge movement by specifying source and destination locations in the system. Each location is a site capable of holding a cartridge, and is referred to as an “element.” Each element is given a fixed element address, either at the time of manufacture or at the time of system installation or configuration.
The SCSI medium changer protocol defines four types of elements: medium transport element, storage element, import export element, and data transfer element. In physical terms, the medium transport element is an accessor gripper, a storage element is a storage slot, an import export element is a library I/O slot or pass-through slot through which robotics or a human operator may insert or eject a cartridge, and a data transfer element is a removable media drive that is capable of reading data on and/or writing data to a cartridge.
Moves from one element to another are requested on the SCSI interface through a SCSI Move Medium command that specifies a source and destination location. Typically, moves from one element to another element are the responsibility of SCSI initiator software, such as independent software vendor programming.
An automated data storage library includes removable media drives and storage slots. Some automated data storage libraries can be partitioned into one or more logical libraries, where each logical library appears as a separate and distinct library to the application program and where, in conventional systems, cartridges in one logical library cannot be accessed from other logical libraries. When partitioning such libraries, each logical library is assigned storage slots, which may be referred to as “logical library storage slots” for ease of reference, and the logical library storage slots may be assigned in a sequential basis from the pool of storage slots. This is done, for example in an IBM® UltraScalable Tape Library 3584.
As an example, if an automated data storage library contains 100 contiguous storage slots, logical library 1 can be allocated 25 of the storage slots so that storage slots 1 through 25 are logical library storage slots 1 through 25. Logical library 2 can then be allocated the remaining 75 storage slots in the library so that logical library 2 has logical library storage slots 1 through 75 that correspond to storage slots 26 through 100. This is a fixed mapping of logical library storage slots to the storage slots in the pool of storage slots. The mapping may be done during configuration of the library.
With this type of allocation, several problems arise. One problem is that a reconfiguration of the library is required if the number of storage slots to be allocated to a logical library is changed (e.g., logical library 1 needs 30 storage slots). Also, a storage slot cannot be periodically used by a different logical library without reconfiguration. Moreover, adding new storage slots requires reconfiguration. This type of allocation limits the ability for concurrent, nondisruptive library expansion or contraction (i.e., adding or removing storage slots). Furthermore, a storage slot may be a “fixed home slot” for a cartridge. The term “fixed home slot” refers to the first storage slot into which a cartridge was inserted. After the cartridge is used by an application program, the cartridge is returned to its home slot, which may not be the closest available empty storage slot.
U.S. Pat. No. 6,338,006 B1 describes a data storage library that efficiently utilizes I/O slots while maintaining software compatibility by using functional addresses to conduct virtual cartridge moves from storage slots to I/O slots. A location-centric library application program manages cartridge movement according to functional storage addresses and functional I/O addresses. In reality, the library has multiple cartridge receiving slots, which include I/O slots and storage slots. In contrast with the I/O slots and storage slots, functional I/O addresses and functional storage addresses are virtual locations used by the application program in managing cartridge locations. Thus, application program knowledge of cartridge locations is limited to their functional addresses. The library includes a library map that correlates functional addresses with physical addresses. Initially, an eject command is received from the application program. The eject command requests transfer of a cartridge from a source functional storage address to a target functional I/O address. In response to the eject command, irrespective of any physical movement of the cartridge, the library reports successful completion of the requested eject command to the application program. The library first gives a functional I/O address to the storage slot containing the cartridge. When an I/O slot becomes available, the library physically moves the cartridge there and either correlates the cartridge's functional I/O address with this I/O slot, or registers the cartridge's functional I/O address as empty.
Notwithstanding the techniques described in U.S. Pat. No. 6,338,006 B1, there is a need in the art for improved storage allocation systems.